Location stamping and logging of electronic events and habitat generation

ABSTRACT

Methods, systems, and computer-readable media provide for the detection, location stamping, and logging of electronic events and subsequent generation of habitat information. According to implementations, electronic events are detected and location stamped. Associated descriptions and other data corresponding to the electronic events is retrieved and stored along with the geographic locations of the electronic events in an activity log. The information in the activity log is used to generate visual representations of one or more geographic areas in which electronic events that meet user-defined or default criteria occurred within a predetermined frequency.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/554,819 filed Dec. 30, 2005 entitled “Location Stamping and Loggingof Electronic Events and Habitat Generation”, which is hereinincorporated by reference in its entirety.

TECHNICAL FIELD

This application relates generally to tracking user activities. Moreparticularly, this application relates to logging the location ofelectronic events associated with a user and creating a user habitatfrom the logged information.

BACKGROUND

People often live extremely busy lives. Their daily activities mayinclude going to work, taking care of children, maintaining a home, andparticipating in sports and other recreational activities. In a singleday, a person might be in an automobile commuting to and from work andtraveling between activities, walking in and out of the workplace, home,and stores, and meeting with various colleagues, family, and friends. Tofacilitate the completion of many of these tasks and in an attempt tobring some level of organization to their daily activities, many peoplecarry personal electronic devices such as cellular telephones, personaldata assistants (PDAs), and pagers. In some instances, because theseelectronic devices have allowed people to operate more efficiently,these devices have also allowed people to pack even more activities intotheir daily routine.

With the many activities that a person encounters during a day, a week,and a month, it becomes increasingly difficult to recall where and whenmany of these activities took place. Some people may have difficultyremembering where they were when they saw or heard somethinginteresting. For example, a person may remember that she was talking toa certain friend on the phone when she passed a restaurant that she isinterested in going to, but she cannot remember when she saw it, whereit was, or when and where she was when she was talking to the friend onthe telephone. Additionally, it would be helpful for a person to haveaccess to information regarding the geographic areas in which she orsomeone else most commonly travels under varying circumstances in orderto more efficiently plan her daily routine.

SUMMARY

It should be appreciated that this Summary is provided to introduce aselection of concepts in a simplified form that are further describedbelow in the Detailed Description. This Summary is not intended toidentify key features or essential features of the claimed subjectmatter, nor is it intended to be used to limit the scope of the claimedsubject matter.

According to one embodiment of the disclosure presented herein, a methodprovides for tracking of electronic events associated with a mobiledevice. According to the method, an indicator is received, representingan occurrence of an electronic event associated with the mobile device.In response to receiving this indicator, location informationcorresponding to the location of the mobile device is retrieved. Adescription of the electronic event is retrieved and stored along withthe location information in an entry of an activity log. According tovarious implementations, the location information corresponding to eachactivity log entry may be designated on a map. Location information onthe map may additionally be grouped according to information within theactivity log to create at least one user habitat.

According to another embodiment of the disclosure presented herein, amethod provides for generating a user habitat. According to the method,multiple entries are stored within an activity log. Each entry includesa geographic location of an electronic event and multiple descriptorscorresponding to the electronic event. Location designatorscorresponding to the geographic locations of the electronic eventsstored in the activity log are positioned on a map. A number of thelocation designators are represented as a habitat according to selectedcriteria from the activity log.

According to yet another embodiment of the disclosure presented herein,a computer-readable medium causes a computer to record instances ofelectronic events associated with a wireless device. A geographiclocation associated with each instance is also recorded. The geographiclocation of each instance is correlated with the electronic events on amap to create a habitat, which is displayed for a user. According tovarious embodiments, electronic event information associated with eachinstance of each electronic event may be retrieved and recorded alongwith the geographic location associated with each instance in anactivity log. Habitat generating criteria that defines the parametersfor generating the habitat may be received and used to select theelectronic events and corresponding geographic locations for inclusionin the habitat. An area on the map that encompasses these selectedgeographic locations may be designated as the habitat.

Other systems, methods, and/or computer program products according toembodiments will be or become apparent to one with skill in the art uponreview of the following drawings and Detailed Description. It isintended that all such additional systems, methods, and/or computerprogram products be included within this description, be within thescope of the present invention, and be protected by the accompanyingclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating an illustrative mobile computingdevice in which embodiments may be implemented according to thedisclosure presented herein;

FIG. 2 is a block diagram illustrating an information flow betweenelements of a location stamping and mapping system 200 according toembodiments presented herein;

FIG. 3 is a spreadsheet illustrating an example of an activity logaccording to one embodiment presented herein;

FIG. 4 is a map with an electronic event legend illustrating an exampleof a map showing the locations of electronic events according to oneembodiment presented herein;

FIG. 5 is a map illustrating an example of habitats generated usinglocation information associated with electronic events according to oneembodiment presented herein;

FIG. 6 is a flow diagram illustrating a method for detecting and loggingelectronic events according to one embodiment presented herein;

FIG. 7 is a flow diagram illustrating a method for mapping electronicevents according to one embodiment presented herein; and

FIG. 8 is a flow diagram illustrating a method for creating a habitataccording to one embodiment presented herein.

DETAILED DESCRIPTION

The following detailed description is directed to methods, systems, andcomputer-readable media for detecting, recording, and mapping electronicevents and for generating geographic habitats using this recordedelectronic event information. In the following detailed description,references are made to the accompanying drawings that form a parthereof, and which are shown by way of illustration specific embodimentsor examples.

As discussed briefly above, during a typical day, many people may spendtime at work, at home, shopping, commuting to and from work, takingtheir children to and from school and other activities, talking on acellular phone, and participating in other activities. During most ofthese activities, most people are carrying, if not using, an electronicdevice such as a cellular telephone, PDA, or pager. According toimplementations described herein, a mobile electronic device may be usedto detect an electronic event, detect the location of the mobile deviceand associated user, store the electronic event and location in anactivity log, use this information to map the geographic locations ofvarious electronic events on a map, and organize the mapped locations ofthe electronic events into habitats.

As used herein, an electronic event is any activity or incident that maybe captured and recorded by an electronic device. For example, atelephone call, an electronic mail (e-mail), an instant message (IM),taking a picture, listening to music or other audio files, receiving orsending data to another device via a short-range wireless link, or anyother function in which an electronic device performs or may detectqualifies as an electronic event. Using the information stored withinthe activity log, a user is able to recall her location, as well as anyother associated information, when the electronic activity occurred. Forexample, she will be able to recall when and where she was when she madea certain telephone call, when she exchanged music with her friend, andwhen she was in a meeting with a co-worker.

In addition, the user will be able to view all of these electronicevents on a map, and group them together according to desired criteriato show a habitat, or a geographic area in which electronic events thatmet the desired criteria occurred within a predetermined frequency.Viewing a habitat will give a user a visual depiction of the geographicareas in which she most often travels during work or during theweekends, in which she most often talks on her cellular telephone, inwhich she most often makes purchases, or in which she most commonlymeets a particular friend, as examples.

Referring now to the drawings, in which like numerals represent likeelements through the several figures, aspects of the methods, systems,and computer-readable media provided herein will be described. FIG. 1shows an illustrative mobile computing device 102. It should beunderstood that the mobile computing device 102 may be any electronicdevice capable of detecting an electronic event. As an example, themobile computing device 102 may be a cellular telephone, PDA, pager,media player, or hand-held video game console. The mobile computingdevice 102 has a processor 104 and a memory 106. The processor 104 maycomprise a general purpose central processing unit (CPU), a morespecific purpose programmable logic controller (PLC), a programmablegate array, or other type of processor known to those skilled in the artand suitable for controlling the operation of the mobile computingdevice 102.

The processor 104 is connected to the memory 106. The memory 106 maycomprise a volatile or non-volatile memory that includes program codeexecuted by the processor 104 for controlling the operation of themobile computing device 102. According to one implementation, the memory106 includes an event logging engine 108, a telephony application 112, amessaging application 114, a short-range communications application 115,a digital media creation application 116, and a mapping engine 110. Aswill be described in detail below, the event logging engine 108 detectsan occurrence of an electronic event, collects all correspondinginformation relating to that event, and logs the electronic event andcorresponding information into an activity log. Some of the informationrelating to electronic events is retrieved from an electronic events andmapping database 109. For clarity, FIG. 1 shows a representation of theelectronic events and mapping database 109 as a single database.However, it should be understood that the electronic events and mappingdatabase 109 may be multiple databases that are physically orcommunicatively connected to the mobile computing device 102, a server138, a personal computer 136, or to a network 132. The telephonyapplication 112 works in conjunction with a communication hardwaremodule 130 to receive and transmit voice communications from and to anyother communications device 134 via a wired or wireless connection tothe network 132. Similarly, the messaging application 114 works inconjunction with the communication hardware module 130 to receive andtransmit messages, such as electronic mail (e-mail) or instant messages(IMs), from and to any other communications device 134 via a wired orwireless connection to the network 132. To facilitate communications viathe network 132, the mobile computing device 102 may include a networkinterface device and network connector (not shown).

The network 132 may include a wireless network such as, but not limitedto, a Wireless Local Area Network (WLAN) such as a WI-FI network, aWireless Wide Area Network (WWAN), a Wireless Personal Area Network(WPAN) such as BLUETOOTH, a Wireless Metropolitan Area Network (WMAN)such a WiMAX network, a cellular network, or a satellite network.Alternatively, the network 132 may be a wired network such as, but notlimited to, a wired Wide Area Network (WAN), a wired Local Area Network(LAN) such as the Ethernet, a wired Personal Area Network (PAN), or awired Metropolitan Area Network (MAN). The network 132 may include theInternet such that the mobile computing device 102 communicates withother devices via wireless or wired connections to the Internet.

The short-range communications application 115 works in conjunction witha short-range wireless interface 122 and a short-range wirelessinterface controller 124 in order to communicate with a local device,such as a location device 135, via a short-range communications network.As an example, the short-range wireless interface 122 may be an infraredinterface, a BLUETOOTH transceiver, a barcode reader, or any other typeof short-range wireless transmission or reception hardware. As will bedescribed in detail below, the location device 135 is an example of ashort-range transmission device that is used to provide electronic eventdescription information to the mobile computing device 102 via theshort-range wireless interface 122 and corresponding short-rangewireless interface controller 124 and short-range communicationsapplication 115.

The digital media creation application 116 works in conjunction with anymobile computing device 102 media creation hardware to create mediafiles. As an example, the digital media creation application 116 may bea photography application for creating and manipulating photographs andmovie files using input from a built-in camera 118. Additionally, thedigital media creation application 116 may receive input from amicrophone 120 to create audio files. For example, the mobile computingdevice 102 may have audio recording software that records voice memos,dictation, or telephone conversations through the microphone 120. Asdescribed below, the creation of any media by the mobile computingdevice 102 is an electronic event that, along with a pointer to thestored media, is stored in an activity log for subsequent review,mapping, or habitat creation.

The mapping engine 110 is software that utilizes location informationreceived from a location sensor 126 or from an activity log generated bythe event logging engine 108 to plot the geographic locations of anynumber of recorded electronic events on a map for display. The mappingengine may utilize location information and various criteria, asdescribed in detail below, to generate one or more habitats thatvisually depict a geographic area in which a user frequents. The mappingengine 110 is outlined with a dotted line within the memory 106 of themobile computing device 102, as well as within the remote server 138 andthe personal computer 136 associated with a user, to show that it may belocated in one or all of these locations.

Typically, due to the memory and processing limitations of the mobilecomputing device 102 in comparison with the personal computer 136 or theserver 138, and because of the screen size and resolution limitations ofthe mobile computing device 102, the mapping engine 110 will be locatedwithin the personal computer 136 where the user is most likely toutilize a map showing the locations of her associated electronic eventsor resulting habitats. In this implementation, the user utilizes themobile computing device 102 for detecting and recording electronicevents and the personal computer 136 for creating and analyzingresulting maps and habitats. However, it should be appreciated that themapping engine 110 may be located within the mobile computing device 102or within the remote server 138 and executed using the mobile computingdevice 102 and associated display.

The location sensor 126 may be a global positioning system (GPS)receiver. Using GPS technology, the mobile computing device 102 maypopulate an activity log with extremely accurate location informationassociated with electronic events, including information such as speedand altitude. Alternatively, the location sensor 126 may be hardware orsoftware that utilizes cellular signal strength triangulation techniquesfor determining mobile computing device 102 location information.According to yet another alternative implementation, the location sensor126 may be a receiver for receiving a short-range signal from thelocation device 135. According to this implementation, the locationsensor 126 may be hardware or software that operates in conjunction withthe short-range wireless interface 122 that receives a signal from thelocation device 135.

The location device 135 may be a transmitter that continuously orperiodically transmits a short-range signal for detection by thelocation sensor 126. The signal received by the location device 135 maycontain descriptive location information such as the name and address ofa retail store in which the location device 135 is located, or it maytransmit geographic coordinates identifying the location of the locationdevice 135, and by association, the mobile computing device 102.Finally, the mobile computing device 102 includes a clock 128 thattracks the current date and time for time-stamping electronic events asthey occur.

Turning now to FIG. 2, the flow of information in and out of the eventlogging engine 108 and other elements of a location stamping and mappingsystem 200 according to embodiments presented herein will be described.FIG. 2 is intended to illustrate a pictorial flow of information, whiledetails of the actual processes will be described below with respect toFIGS. 6-8. The location stamping and mapping system 200 includes fourcategories of electronic events, telephony events 202, messaging events204, digital media events 206, and short-range communications events208. It should be understood that while electronic events are describedas being associated with one or more of these event categories forillustration purposes, the disclosure presented herein is applicable toany number and type of electronic events, which do not have to beclassified or categorized prior to being logged by the event loggingengine 108 and mapped by the mapping engine 110.

The telephony events 202 include any telephone call or other voicecommunications between the mobile computing device 102 and thecommunications device 134 using the communications network 132. Themessaging events 204 include any data transmissions between the mobilecomputing device 102 and the communications device 134, as well as anymessaging actions or message manipulation. Examples include but are notlimited to sending, receiving, reading, and deleting email, IMs, andtext messages. The digital media events 206 include capturing, playing,and manipulating media. For example, taking photographs, recording mediaclips, and playing video and audio are digital media events.

The short-range communications events 208 include any unidirectional orbidirectional short-range communications between the mobile computingdevice 102 and an external device. It should be understood that theexternal device does not need to be a communications device or otherelectronic device. According to one implementation, the short-rangewireless interface 122 of the mobile computing device 102 is a bar-codereader and the external device is a food item from a grocery store. Byscanning items using the bar-code reader, the user may create a recordof the date, time, and location of the grocery shopping trip andsimultaneously create a grocery list. Other examples of short-rangewireless interfaces include but are not limited to infrared (IR) andWiFi interfaces. Other examples of short-range communications events 208include receiving electronic receipts and detecting other proximateelectronic devices.

According to the location stamping and mapping system 200, as electronicevents 202, 204, 206, and 208 occur, they are detected by the eventlogging engine 108. The electronic events and mapping database 109 isshown in FIG. 2 as being three databases, an electronic events database109A, a public landmark database 109B, and a personal landmark database109C. The electronic events database 109A stores electronic eventdescriptors corresponding to the electronic events 202, 204, 206, and208. The event logging engine 108 detects an electronic event byactivation of a particular hardware or software component of the mobilecomputing device 102 associated with the event.

For example, when the mobile computing device 102 receives a phone call,then either the receipt of the call request at the mobile computingdevice 102, the activation of the ring tone, the receipt of calleridentification information, or the answering of the call may trigger therecognition of an electronic event 202. However, the trigger orindicator that an electronic event has been detected may be convertedinto a description of the event 210 that is more useful to the userprior to being stored in an activity log 212. This description may bestored in the electronic events database 109A and linked to theparticular electronic event indicator. The event logging engine 108 isthen able to retrieve the electronic event description 210 correspondingto the electronic event indicator from the electronic events database109A and store it in the activity log 212. The electronic eventsdatabase 109A may be populated with event descriptions 210 by a user orby the event logging engine 108 using data received as a result of theelectronic event, such as caller identification information.

As a result of electronic event detection, the event logging engine 108requests and receives raw geographic location coordinates of the mobilecomputing device 102 from the location sensor 126. While the rawcoordinates may be used to plot the electronic event on a map 214, theraw coordinates may not be particularly useful to the viewer if storedin the activity log 212. As a result, the raw coordinates are convertedinto a location description 210 that is useful to the viewer prior tobeing stored in the activity log 212. The location description 210 maybe a name of a store, intersection, workplace, home, or any other usefuldescription. The location description 210 may further be a locationdescribed with respect to a public or personal landmark.

For example, the location description 210 may be “5 miles NE of home” toidentify a location that is 5 miles from a personal landmark, home.Using the raw coordinates, the event logging engine 108 searches thepublic landmark database 109B and the personal landmark database 109Cfor one or more corresponding landmarks from which to describe thelocation of the electronic event. A subscriber profile established bythe user may prioritize the landmarks from which the event loggingengine 108 will use to describe the location. As an example, the usermay wish to describe all electronic event locations with respect to thedistance from work or from home, depending on whether the electronicevent occurred closer to work or closer to home.

The public landmark database 109B and the personal landmark database109C may be populated with landmarks by a user or by the event loggingengine 108 using data received as a result of the electronic event, suchas when the mobile computing device 102 receives a signal from thelocation device 135 transmitting the name and location of the retailstore from which the location device 135 is transmitting. It should beappreciated that the electronic events database 109A, the publiclandmark database 109B, and the personal landmark database 109C may be asingle database or multiple databases.

After aggregating the location and event information 210 from thelocation sensor 126 and the databases 109A, 109B, and 109C, the eventlogging engine 108 stores the location and event information 210 as anentry in the activity log 212. It should be appreciated that retrievingthe location and event information 210 from the location sensor 126 andthe databases 109A, 109B, and 109C may occur in real-time as eachelectronic event is detected or in batches at pre-determined timeintervals. As described below, the user may view, search, and manipulatethe activity log 212 using the personal computer 136. The activity log212 may also be used by the mapping engine 110 to create a map 214 forthe viewer on the personal computer 136. This process, as well as asample map will be described below with respect to FIG. 4 and FIG. 7.

Referring now to FIG. 3, a sample activity log 212 will be described.The activity log 212 contains a number of entries 302A-302J. Each entry302A-302J has location and event information 210 stored in any number ofevent descriptor fields 304, 306, 308, 310, 312, and 314. The eventdescriptor fields 304 and 306 include the date and time of thecorresponding electronic event as received by the clock 128 of themobile computing device 102. The event descriptor field 308 includes alocation description corresponding to the geographic location where theelectronic event took place with respect to a public or privatelandmark.

As an example, the event descriptor field 308 of entry 302F shows thatthe corresponding electronic event took place in IPPOLITO'S restaurant.This landmark was retrieved from the public landmark database 109B orfrom the personal landmark database 109C using the raw coordinates ofthe mobile computing device 102 as detected by the location sensor 126.Similarly, the event descriptor field 308 of entry 3021 shows that thecorresponding electronic event took place 5 miles NE of home. Thisdescription was stored in the personal landmark database 109C andretrieved by the event logging engine 108 upon receiving raw coordinatesof the mobile computing device 102 from the location sensor 126. Lookingat entry 302J, the location description stored within the eventdescriptor field 308 shows that the electronic event took place in acar, 23 miles N of work. Because the mobile computing device 102contains a GPS receiver, the speed at which the mobile computing device102 is moving may be determined from the GPS receiver. Because the speedis over a pre-determined threshold, the event logging engine 108determines that the mobile computing device 102 is in a vehicle.

The event descriptor field 310 identifies the electronic events. Asdiscussed above, the event logging engine 108 utilizes the electronicevents database 109A to convert an electronic event indicator to theelectronic event description and stores that description in the eventdescriptor field 310. The event descriptor field 312 includes anyadditional data associated with the electronic event, or links to anydata file that is associated with the electronic event. For example,entry 302C corresponds to a MASTERCARD purchase made at BARNES & NOBLE.Because the store issued an electronic receipt, the event descriptorfield 312 includes a link to the receipt file used to view the receipt.According to the illustrative embodiment shown in FIG. 2, the eventdescriptor field 312 includes links to an MP3 file, receipts, an imagefile, and an audio file of a recorded telephone call. Additionalinformation, such as a calorie count as seen in entry 302E, may beincluded in the activity log 212.

The event descriptor field 314 identifies any “buddies” that werepresent during the electronic event. Buddies are other electronicdevices with which the mobile computing device 102 may be able tocommunicate with using short-range communications or may detect as beingin a close proximity to one another. As described briefly above withrespect to the short-range communications application 115 and thenetwork 132, the mobile computing device 102 may be able to detect thepresence of the communications device 134. According to implementationsdescribed herein, electronic device characteristics associated with theshort-range communication signals from the communications device 134belonging to a known party identify the communications device 134 asbelonging to a buddy.

These identifying device characteristics associated with thecommunications device 134 are correlated with a buddy description withinthe electronic events database 109A so that the mobile computing device102 may detect when a buddy is present or within a predetermineddistance from the mobile computing device 102. If a buddy is present fora predetermined amount of time, then the event logging engine 108 maydetermine and log that a meeting with the buddy has taken place. Themobile computing device 102 may additionally include an optionalnotification feature that will notify the user via an audible or visualnotification when a buddy is detected. It should be understood that thedisclosure presented herein is not limited to the amount and type ofinformation shown in FIG. 3 to be stored within the activity log 212.

FIG. 4 shows an exemplary electronic events information screen 400,having a map 402 and an electronic event legend 404. The electronicevents information screen 400 is displayed for the viewer afterselecting the criteria for mapping electronic events. The mapping engine110 may provide the user with a user interface for selecting theapplicable criteria for generating the map 402. The user may choose tocreate a map showing the electronic events according to time, date,event type, location, or any other information stored within theactivity log 212. Alternatively, the mapping engine 110 may beprogrammed with a set of default criteria to use when the user does notrequest any criteria. For example, the user may be able to select asingle button to automatically provide a map having the last 10electronic events plotted without any further user input.

After receiving the criteria for generating the map 402, the mappingengine 110 identifies the locations of the applicable electronic eventsusing location designators 406 on the map 402. The mapping engine 110creates the electronic event legend 404 that provides the eventdescriptions and other applicable information from the activity log 212corresponding to the plotted events. The electronic event legend 404 mayinclude links to any associated data files identified in the eventdescriptor field 312 of the activity log 212. For example, the user mayclick on the bold links associated with the electronic events to viewelectronic receipts, see and play songs transferred from anotherelectronic device, view photos taken by the mobile computing device 102,and listen to a recorded telephone conversation. Additionally, themapping engine 110 may search the Internet for links associated withcertain landmarks and provide hyperlinks to the associated web pages inthe electronic event legend, allowing the user to click on the links andbe transported to related web pages where they can view additionalinformation, rate a restaurant, add the restaurant to a list offavorites, or any other action associated with the electronic event. Itshould be understood that the electronic events information screen 400may be configured according to the desires of the viewer, with as muchor as little information related to the electronic events provided inthe electronic event legend 404 or the map 402 as desired.

FIG. 5 shows an exemplary habitat generation results screen 500, havinga map 502 showing two different illustrative habitats, 504 and 506respectively. The habitat generation results screen 500 is displayed forthe viewer after selecting the criteria for creating one or morehabitats from applicable entries of the activity log 212. According tovarious embodiments described herein, the mapping engine 110 may grouplocations of electronic events according to user-defined or defaultcriteria in order to create user habitats. A habitat provides a visualrepresentation on a map of the geographic areas in which the user mostfrequently travels or participates in certain electronic eventsaccording to the user-defined or default criteria. Through an interfaceprovided by the mapping engine 110, the user may request a habitat andselect the criteria for generating the habitat. The habitat may begenerated according to the electronic event occurrences based on any ofthe location and event information 210 stored within the activity log212 that meet the user-defined or default criteria.

For example, the habitat 504 might define a work habitat that enclosesthe geographic area in which electronic events during work hours tookplace during a range of dates or according to all of the electronicevents stored in the activity log 212. The habitat 506 may define ashopping habitat that encloses the geographic area in which electronicevents involving MASTERCARD purchases occurred during a range of dates,time, or frequency. It should be understood that the information storedwithin the activity log 212 may be sorted in any manner to build anynumber of habitats. The habitats may be limited in any manner such as toinclude only those electronic events that took place with apredetermined frequency or frequency range. It should also beappreciated that the habitats may be represented by any manner thatvisually represents the geographic area enclosed by the habitat. Forexample, while the habitats 504 and 506 are each represented by a solidline enclosing the geographic area within the habitat, the habitats 504and 506 may alternatively be represented by shading, colors,highlighting the roads or other objects within each habitat 504 and 506with a color, by creating an exploded view wherein each habitat 504 and506 is projected off of the map 502, or by zooming into the map toenclose only the generated habitats 504 and 506 within a viewing area ofthe habitat generation results screen 500.

According to one implementation of the disclosure presented herein, theuser may subscribe to the activity log 212 and the associated mappingand habitat generation features resulting in the electronic eventsinformation screen 400 and the habitat generation results screen 500 foranother user. As an example, a parent may have the ability to subscribeto an activity log associated with a child. In doing so, the parent mayremain well-informed as to the activities of their child. Thisimplementation may have an associated opt-in and opt-out feature thatrequires a person to assent to being “monitored” by another party.

Referring now to FIG. 6, an illustrative routine 600 will be describedfor detecting and logging electronic events according to one embodimentpresented herein. It should be appreciated that the logical operationsdescribed herein may be implemented (1) as a sequence of computerimplemented acts or program modules running on a computing system and/or(2) as interconnected machine logic circuits or circuit modules withinthe computing system. The implementation is a matter of choice dependenton the performance requirements of the computing system. Accordingly,the logical operations described herein are referred to variously asoperations, structural devices, acts, or modules. These operations,structural devices, acts and modules may be implemented in software, infirmware, in special purpose digital logic, and any combination.

The routine 600 begins at operation 602, where the event logging engine108 determines whether an electronic event has been detected. Asdescribed above, any action that may be detected and recorded by themobile computing device 102 qualifies as an electronic event. If noelectronic event is detected, the routine 600 remains at operation 602and continues to monitor for events. If an electronic event is detectedat operation 602, then the routine 600 continues to operation 604, wherethe event logging engine 108 retrieves the date and time from the clock128. The event logging engine 108 retrieves raw location coordinatesassociated with the location of the mobile computing device 102 when theelectronic event occurred from the location sensor 126. It should beunderstood that these coordinates may be retrieved at the onset of theelectronic event, periodically or continuously as the electronic eventoccurs if it is an event such as a telephone call that has a substantialduration, or when the electronic event terminates.

From operation 606, the routine 600 proceeds to operation 608, where theevent logging engine 108 translates the raw location coordinates into ageographic location description with respect to public and/or personallandmarks. As discussed above, the event logging engine 108 may searchthe public landmark database 109B and the private landmark database 109Cfor the closest public or private landmark corresponding to the rawlocation coordinates and provide a geographic location description withrespect to that landmark. The routine 600 continues from operation 608to operation 610, where the event logging engine 108 retrieves theelectronic event description from the electronic events database 109A.The event logging engine 108 then stores the date, time, location, andelectronic event description in the activity log 212 at operation 612.

The routine proceeds from operation 612 to operation 614, where theevent logging engine 108 determines whether any file is associated withthe electronic event. As discussed above, there may be files associatedwith an electronic event such as an image file, an audio recording, avideo file, or an electronic receipt, for example. If the event loggingengine 108 determines that there is an associated file at operation 614,then the routine 600 proceeds to operation 616 and the event loggingengine 108 stores the associated file in the memory 106 of the mobilecomputing device 102 and stores a link to the file in the activity log212. The routine then continues to operation 618. However, if atoperation 614, the event logging engine 108 determines that there is notan associated file present, then the routine 600 proceeds directly tooperation 618, where the event logging engine 108 determines if a buddyis present at the time of the electronic event or the electronic eventis the detection of a buddy. If an electronic device associated with apre-defined buddy is detected at operation 618, then the routinecontinues to operation 620, where the event logging engine 108 storesthe identity of the buddy in the activity log 212 before continuing tooperation 622.

However, if at operation 618, the event logging engine 108 does notdetect a buddy present, then the routine 600 proceeds to operation 622,where the event logging engine 108 determines if a request for mappinghas been received. If the event logging engine 108 determines that arequest for mapping one or more electronic events has been received,then the routine 600 continues to operation 624, where the mappingengine 110 generates a map per the request and the routine 600 ends.However, if at operation 622, the event logging engine 108 determinesthat a request for mapping has not been received, then the routinereturns to operation 602 and continues as described above.

Looking now at FIG. 7, a routine 700 for providing a map at operation624 will be described. The routine 700 begins at operation 702, wherethe mapping engine 110 determines whether map criteria has been receivedfrom the user. As discussed above, the map criteria defines theparameters for mapping electronic events. The map criteria may beuser-defined, allowing the user to input the criteria via a userinterface, or may be pre-defined as default criteria. If the mappingengine 110 determines that map criteria has been received from the user,then the routine 700 continues to operation 706, where the mappingengine 110 retrieves electronic event data from the activity log 212according to the user-defined criteria. However, if at operation 702,the mapping engine 110 determines that map criteria has not beenreceived from the user, then the routine 700 proceeds to operation 704,where the mapping engine 110 retrieves the default criteria and thenretrieves the electronic event data from the activity log 212 accordingto the default criteria at operation 706.

The routine 700 proceeds from operation 706 to operation 708, where themapping engine 110 plots the electronic event locations from theretrieved activity log data on the map 402 using the locationdesignators 406. From operation 708, the routine 700 continues tooperation 710, where the mapping engine 110 creates the electronic eventlegend 404 with any applicable links to electronic event data. Theroutine 700 continues to operation 712, where the map 402 and theelectronic event legend 404 are displayed for the user and the routine700 ends.

Turning to FIG. 8, an illustrative routine 800 for creating a habitataccording to embodiments presented herein will be described. The routine800 begins at operation 802, where the mapping engine 110 determineswhether habitat criteria has been received from the user. As discussedabove, the habitat criteria defines the parameters for creating one ormore habitats from electronic event information stored within theactivity log 212. The habitat criteria may be user-defined, allowing theuser to input the criteria via a user interface, or may be pre-definedas default criteria. The habitat criteria may be based on any datastored in the activity log 212. Additionally, the user-defined criteriaand the default criteria may establish parameters for including onlyelectronic events that occur within a determined frequency. For example,if the user traveled to a location 100 miles from work on a particularday, but has never traveled to that location previous to that day orsince that day, the mapping engine 110 may treat that event location asan anomaly and will not expand a requested work habitat to include thatlocation.

If the mapping engine 110 determines at operation 802 that habitatcriteria has been received from the user, then the routine 800 continuesto operation 806, where the mapping engine 110 retrieves electronicevent data from the activity log 212 according to the user-definedcriteria. However, if at operation 802, the mapping engine 110determines that habitat criteria has not been received from the user,then the routine 800 proceeds to operation 804, where the mapping engine110 retrieves the default criteria. The routine 800 continues tooperation 806, where the mapping engine 110 retrieves the electronicevent data from the activity log 212 according to the retrieved defaultcriteria.

The routine 800 proceeds from operation 806 to operation 808, where themapping engine 110 plots the electronic event locations from theretrieved activity log data on the map 502. Alternatively, the mappingengine 110 will represent the habitats without plotting the individualelectronic event locations that are included within the habitat as shownin FIG. 5. From operation 808, the routine 800 continues to operation810, where the mapping engine 110 generates the requested habitat bydesignating the area encompassing the electronic event locations as thehabitat. The routine 800 continues to operation 812, where the mappingengine 110 determines whether additional habitats are requested via auser interface. If additional habitats are requested, then the routine800 returns to operation 802 and continues as described above. However,if the mapping engine 110 determines that additional habitats are notrequested, then the routine 800 ends.

Although the subject matter presented herein has been described inconjunction with one or more particular embodiments and implementations,it is to be understood that the invention defined in the appended claimsis not necessarily limited to the specific structure, configuration, orfunctionality described herein. Rather, the specific structure,configuration, and functionality are disclosed as example forms ofimplementing the claims.

The subject matter described above is provided by way of illustrationonly and should not be construed as limiting. Various modifications andchanges may be made to the subject matter described herein withoutfollowing the example embodiments and applications illustrated anddescribed, and without departing from the true spirit and scope of thepresent invention, which is set forth in the following claims.

1. A computer-implemented method for generating a user habitat, thecomputer-implemented method comprising: retrieving, via a computer, aplurality of entries from within an activity log, wherein each entrycomprises a geographic location and an electronic event descriptorcorresponding to an electronic event; positioning, via the computer, alocation designator on a map corresponding to the geographic locationstored with each of the plurality of entries within the activity log;and representing, via the computer, a plurality of the locationdesignators as a habitat according to selected activity log entrycriteria.
 2. The method of claim 1, further comprising: determiningwhether habitat criteria has been received; if habitat criteria has notbeen received, retrieving default habitat criteria and retrieving theplurality of entries from within the activity log according to thedefault habitat criteria; and if habitat criteria has been received,retrieving the plurality of entries from within the activity logaccording to the habitat criteria.
 3. The method of claim 2, wherein thehabitat criteria comprises user-defined criteria.
 4. The method of claim3, wherein the habitat criteria comprises a parameter for including onlyelectronic events that occur within a determined frequency.
 5. Themethod of claim 1, wherein each electronic event comprises an actionrecordable by a wireless electronic device associated with a user. 6.The method of claim 1, wherein the electronic event descriptorcorresponding to the electronic event included in each entry of theplurality of entries within the activity log comprises a date and a timethat the electronic event occurred and a description of the electronicevent.
 7. The method of claim 1, wherein the electronic event descriptorcorresponding to the electronic event included in each entry of theplurality of entries within the activity log comprises an indication asto whether an electronic device associated with a known party was withinproximity to a user when the electronic event occurred.
 8. Acomputer-readable medium having computer-executable instructions storedthereon which, when executed by a computer, cause the computer at leastto: retrieve a plurality of entries from within an activity log, whereineach entry comprises a geographic location and an electronic eventdescriptor corresponding to an electronic event; position a locationdesignator on a map corresponding to the geographic location stored witheach of the plurality of entries within the activity log; and representa plurality of the location designators as a habitat according toselected activity log entry criteria.
 9. The computer-readable medium ofclaim 8, further comprising computer-executable instructions storedthereon which, when executed by the computer, cause the computer atleast to: determine whether habitat criteria has been received; ifhabitat criteria has not been received, retrieve default habitatcriteria and retrieve the plurality of entries from within the activitylog according to the default habitat criteria; and if habitat criteriahas been received, retrieve the plurality of entries from within theactivity log according to the habitat criteria.
 10. Thecomputer-readable medium of claim of claim 9, wherein the habitatcriteria comprises user-defined criteria.
 11. The computer-readablemedium of claim 9, wherein the habitat criteria comprises a parameterfor including only electronic events that occur within a determinedfrequency.
 12. The computer-readable medium of claim 9, wherein eachelectronic event comprises an action recordable by a wireless electronicdevice associated with a user.
 13. The computer-readable medium of claim8, wherein the electronic event descriptor corresponding to theelectronic event included in each entry of the plurality of entrieswithin the activity log comprises a date and a time that the electronicevent occurred and a description of the electronic event.
 14. Thecomputer-readable medium of claim 8, wherein the electronic eventdescriptor corresponding to the electronic event included in each entryof the plurality of entries within the activity log comprises anindication as to whether an electronic device associated with a knownparty was within proximity to a user when the electronic event occurred.15. A computer-readable medium having computer-executable instructionsstored thereon which, when executed by a computer, cause the computer atleast to: record a plurality of instances of electronic eventsassociated with a mobile computing device; record a geographic locationassociated with each instance of the plurality of instances; correlatethe geographic location of each instance with the electronic events on amap to create a habitat; and display the habitat on the map.
 16. Thecomputer-readable medium of claim 15, further comprisingcomputer-executable instructions stored thereon which, when executed bythe computer, cause the computer at least to: retrieve electronic eventinformation associated with each instance of each electronic event; andrecord the electronic event information with the geographic locationassociated with each instance in an activity log.
 17. Thecomputer-readable medium of claim 16, wherein causing the computer tocorrelate the geographic location of each instance with the electronicevents on a map to create a habitat comprises causing the computer to:receive habitat generating criteria defining parameters for generatingthe habitat according to the electronic event information and thegeographic location associated with each instance in the activity log;select the electronic events and corresponding geographic locationsassociated with each instance of the selected electronic eventsaccording to the habitat generating criteria; and designate an area onthe map encompassing the selected geographic locations as the habitat.18. The computer-readable medium of claim 17, wherein the habitatgenerating criteria comprises a frequency threshold of event occurrence.19. The computer-readable medium of claim 17, wherein the habitatgenerating criteria comprises user-defined habitat generating criteria.20. The computer-readable medium of claim 17, wherein the habitatgenerating criteria comprises default habitat generating criteria.